[INFO] cloning repository https://github.com/llenotre/Visto
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/llenotre/Visto" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3eab5ee9b32875c801a32bcc354377a0abd8b880
[INFO] checking llenotre/Visto against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/llenotre/Visto on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/llenotre/Visto
[INFO] finished tweaking git repo https://github.com/llenotre/Visto
[INFO] tweaked toml for git repo https://github.com/llenotre/Visto written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/llenotre/Visto already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /workspace/builds/worker-6-tc1/source/server/Cargo.toml: file `/workspace/builds/worker-6-tc1/source/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cc0f6c728faa1a4618799d07193826ce11989fa44af8e4d144a9d00a9ff10b9e
[INFO] running `Command { std: "docker" "start" "-a" "cc0f6c728faa1a4618799d07193826ce11989fa44af8e4d144a9d00a9ff10b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cc0f6c728faa1a4618799d07193826ce11989fa44af8e4d144a9d00a9ff10b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc0f6c728faa1a4618799d07193826ce11989fa44af8e4d144a9d00a9ff10b9e", kill_on_drop: false }`
[INFO] [stdout] cc0f6c728faa1a4618799d07193826ce11989fa44af8e4d144a9d00a9ff10b9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 95be0e1bd1d67bbb81bdf42f3b49e11f5c87c08376fe3c530e6466cc9ea74163
[INFO] running `Command { std: "docker" "start" "-a" "95be0e1bd1d67bbb81bdf42f3b49e11f5c87c08376fe3c530e6466cc9ea74163", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /opt/rustwide/workdir/server/Cargo.toml: file `/opt/rustwide/workdir/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]     Checking libloading v0.8.0
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking visto v0.1.0 (/opt/rustwide/workdir/server)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking big-request v0.1.0 (/opt/rustwide/workdir/big-request)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.96s
[INFO] running `Command { std: "docker" "inspect" "95be0e1bd1d67bbb81bdf42f3b49e11f5c87c08376fe3c530e6466cc9ea74163", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "95be0e1bd1d67bbb81bdf42f3b49e11f5c87c08376fe3c530e6466cc9ea74163", kill_on_drop: false }`
[INFO] [stdout] 95be0e1bd1d67bbb81bdf42f3b49e11f5c87c08376fe3c530e6466cc9ea74163
[INFO] checking llenotre/Visto against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllenotre%2FVisto" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/llenotre/Visto on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/llenotre/Visto
[INFO] finished tweaking git repo https://github.com/llenotre/Visto
[INFO] tweaked toml for git repo https://github.com/llenotre/Visto written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/llenotre/Visto already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /workspace/builds/worker-6-tc2/source/server/Cargo.toml: file `/workspace/builds/worker-6-tc2/source/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 78e1c005d82a33e8cbc2a8fbbb9a4f7d02cb4581ca675a8655c76aa2847ec2b0
[INFO] running `Command { std: "docker" "start" "-a" "78e1c005d82a33e8cbc2a8fbbb9a4f7d02cb4581ca675a8655c76aa2847ec2b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "78e1c005d82a33e8cbc2a8fbbb9a4f7d02cb4581ca675a8655c76aa2847ec2b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78e1c005d82a33e8cbc2a8fbbb9a4f7d02cb4581ca675a8655c76aa2847ec2b0", kill_on_drop: false }`
[INFO] [stdout] 78e1c005d82a33e8cbc2a8fbbb9a4f7d02cb4581ca675a8655c76aa2847ec2b0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a7f9016050f0d75c38c05f8075c1448c54bdf69a876f3f34be5566b2aa3d69f3
[INFO] running `Command { std: "docker" "start" "-a" "a7f9016050f0d75c38c05f8075c1448c54bdf69a876f3f34be5566b2aa3d69f3", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: /opt/rustwide/workdir/server/Cargo.toml: file `/opt/rustwide/workdir/server/src/main.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `visto`
[INFO] [stderr]   * `bin` target `visto`
[INFO] [stderr]    Compiling libc v0.2.147
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking libloading v0.8.0
[INFO] [stderr]     Checking visto v0.1.0 (/opt/rustwide/workdir/server)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/ctx/client.rs:363:46
[INFO] [stdout]     |
[INFO] [stdout] 363 |             let len = self.stream.read(&mut self.buff[self.buff_cursor..])?;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/ctx/window.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 |         for y in y_begin..y_end {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/ctx/window.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |             for x in x_begin..x_end {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> server/src/ctx/mod.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 |         for i in 1..=((1 << 29) - 1) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> server/src/extension.rs:33:50
[INFO] [stdout]    |
[INFO] [stdout] 33 |         = Mutex::new(IDAllocator::from_range_inclusive(128..=255));
[INFO] [stdout]    |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/input/device.rs:557:44
[INFO] [stdout]     |
[INFO] [stdout] 557 |             let len = self.file.read(&mut self.buff[self.cursor..])?;
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/output/card.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         for i in 0..16 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/change_property.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let data_slice = &buff[data_begin..data_end];
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> server/src/ctx/client.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 |             /// Padding.
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 212 |             _padding1: 0,
[INFO] [stdout]     |             ------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> server/src/protocol/request/change_window_attributes.rs:58:25
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let attrs_buff = &buff[size_of::<ChangeWindowAttributesHdr>()..];
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> server/src/protocol/request/create_gc.rs:56:23
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let set_bits_iter = (0..=22).filter(|i| hdr.bitmask & (1 << i) != 0);
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/ctx/client.rs:363:46
[INFO] [stdout]     |
[INFO] [stdout] 363 |             let len = self.stream.read(&mut self.buff[self.buff_cursor..])?;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let set_bits_iter = (0..=14).filter(|i| bitmask & (1 << i) != 0);
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let attrs_buff = &buff[size_of::<CreateWindowHdr>()..];
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> server/src/protocol/request/get_property.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let data = data[start_off..(start_off + len)].to_vec();
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/ctx/window.rs:316:12
[INFO] [stdout]     |
[INFO] [stdout] 316 |         for y in y_begin..y_end {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> server/src/protocol/request/intern_atom.rs:99:34
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let name = str::from_utf8(&buff[name_begin..name_end]).unwrap(); // TODO Handle error
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/ctx/window.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |             for x in x_begin..x_end {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/query_extension.rs:119:34
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let name = str::from_utf8(&buff[name_begin..name_end]).unwrap(); // TODO Handle error
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> server/src/ctx/mod.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 |         for i in 1..=((1 << 29) - 1) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/mod.rs:388:20
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let buff = &buff[hdr_len..req];
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> server/src/extension.rs:33:50
[INFO] [stdout]    |
[INFO] [stdout] 33 |         = Mutex::new(IDAllocator::from_range_inclusive(128..=255));
[INFO] [stdout]    |                                                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/input/device.rs:557:44
[INFO] [stdout]     |
[INFO] [stdout] 557 |             let len = self.file.read(&mut self.buff[self.cursor..])?;
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> server/src/main.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 |     s[1..]
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/output/card.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         for i in 0..16 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/main.rs:137:56
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut client_id_allocator = IDAllocator::from_range(0..8192);
[INFO] [stdout]     |                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `io`
[INFO] [stdout]   --> server/src/output/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 | macro_rules! io {
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `iow`
[INFO] [stdout]   --> server/src/output/mod.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 | macro_rules! iow {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `ior`
[INFO] [stdout]   --> server/src/output/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 | macro_rules! ior {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/change_property.rs:141:25
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let data_slice = &buff[data_begin..data_end];
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> server/src/protocol/request/change_window_attributes.rs:58:25
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let attrs_buff = &buff[size_of::<ChangeWindowAttributesHdr>()..];
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> server/src/protocol/request/create_gc.rs:56:23
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let set_bits_iter = (0..=22).filter(|i| hdr.bitmask & (1 << i) != 0);
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let set_bits_iter = (0..=14).filter(|i| bitmask & (1 << i) != 0);
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:219:25
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let attrs_buff = &buff[size_of::<CreateWindowHdr>()..];
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> server/src/protocol/request/get_property.rs:96:20
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let data = data[start_off..(start_off + len)].to_vec();
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> server/src/protocol/request/intern_atom.rs:99:34
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let name = str::from_utf8(&buff[name_begin..name_end]).unwrap(); // TODO Handle error
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/query_extension.rs:119:34
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let name = str::from_utf8(&buff[name_begin..name_end]).unwrap(); // TODO Handle error
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/protocol/request/mod.rs:388:20
[INFO] [stdout]     |
[INFO] [stdout] 388 |         let buff = &buff[hdr_len..req];
[INFO] [stdout]     |                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> server/src/main.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 |     s[1..]
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> server/src/main.rs:137:56
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let mut client_id_allocator = IDAllocator::from_range(0..8192);
[INFO] [stdout]     |                                                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:95:3
[INFO] [stdout]    |
[INFO] [stdout] 95 |         client: &mut Client,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seq_nbr`
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:96:3
[INFO] [stdout]    |
[INFO] [stdout] 96 |         seq_nbr: u16,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seq_nbr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/protocol/request/create_window.rs:105:7
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut window = Window::new(ctx, NonZeroU32::new(self.parent), rect);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut listener = Listener::new(&unix_path, tcp_port, &mut poll).unwrap_or_else(|e| {
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pointer` is never read
[INFO] [stdout]   --> server/src/ctx/mod.rs:79:2
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct Context<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pointer: Pointer,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `screen`, `x`, `y`, and `cursor` are never read
[INFO] [stdout]   --> server/src/ctx/pointer.rs:7:2
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub struct Pointer {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 6  |     /// The ID of the screen the pointer is located on.
[INFO] [stdout] 7  |     screen: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     x: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] 11 |     /// The Y position of the pointer relative to the screen's top-left corner.
[INFO] [stdout] 12 |     y: i16,
[INFO] [stdout]    |     ^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     cursor: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> server/src/extension.rs:72:2
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct Extension {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 71 |     /// The name of the extension.
[INFO] [stdout] 72 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRM_IOCTL_MODE_RMFB` is never used
[INFO] [stdout]   --> server/src/output/mod.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | const DRM_IOCTL_MODE_RMFB: u64 = iowr!(DRM_IOCTL_BASE, 0xaf, u32);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `fb_min_width`, `fb_max_width`, `fb_min_height`, and `fb_max_height` are never read
[INFO] [stdout]   --> server/src/output/card.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct DRICard {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 41 |     /// The path to the device file.
[INFO] [stdout] 42 |     path: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fb_min_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 48 |     /// The maximum width of a framebuffer.
[INFO] [stdout] 49 |     fb_max_width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 50 |     /// The minimum height of a framebuffer.
[INFO] [stdout] 51 |     fb_min_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 52 |     /// The maximum height of a framebuffer.
[INFO] [stdout] 53 |     fb_max_height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DRICard` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `drop` is never used
[INFO] [stdout]    --> server/src/output/framebuffer.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl<'a> Framebuffer<'a> {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 174 |     fn drop(&mut self) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wid`, `class`, and `visual` are never read
[INFO] [stdout]   --> server/src/protocol/request/create_window.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CreateWindow {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 65 |     /// The ID of the window.
[INFO] [stdout] 66 |     wid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     class: Class,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 81 |     /// TODO doc
[INFO] [stdout] 82 |     visual: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> server/src/id_allocator.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn from_range(range: Range<T>) -> Self {
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `RangeInclusive` type in public function
[INFO] [stdout]   --> server/src/id_allocator.rs:27:37
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn from_range_inclusive(range: RangeInclusive<T>) -> Self {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 33 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `visto` (lib) due to 3 previous errors; 33 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "a7f9016050f0d75c38c05f8075c1448c54bdf69a876f3f34be5566b2aa3d69f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7f9016050f0d75c38c05f8075c1448c54bdf69a876f3f34be5566b2aa3d69f3", kill_on_drop: false }`
[INFO] [stdout] a7f9016050f0d75c38c05f8075c1448c54bdf69a876f3f34be5566b2aa3d69f3
